Electrical motors are used in the automotive field not only in electrically powered cars but also as actuators in servo-systems for driving pumps, compressors and the like. Many functional devices of a car are motorized, such as the fuel pump, the over-modulation compressor, the transmission gears, the power steering, and so forth.
Traditionally, these functional devices were servo-assisted by exploiting the motor torque available on the shaft of the thermal engine of the car. This implied inefficiencies in using part of the mechanical energy obtained by burning fuel for powering these devices. Lately, the use of electrical motors that convert electric energy into mechanical energy has become more and more the preferred choice.
Permanent magnet brushless motors are often preferred in these automotive applications. The characteristics of permanent magnet brushless motors are particularly suitable for automotive applications. They are relatively lightweight, have a high power density, a small size and are very reliable. However, they are relatively expensive due to the costs of the magnets used for fabricating the rotor, more difficult to control than a traditional DC electrical machine, and require precise angular position sensors depending on the brushless motor and the control strategy.
In particular, when implementing control strategies that contemplate a sinusoidal modulation of the PWM (Pulse Width Modulation), whether DC (trapezoidal induced back electromotive force) or AC (sinusoidal induced back electromotive force), it is necessary to use sensors for the angular position, such as (incremental or absolute) encoders and resolvers that are relatively expensive (encoders) or require complicated sensing techniques (resolvers).
For these reasons, the use of sensorless control algorithms that, based upon the detection of quantities the value of which is measurable and/or available in a simple and economic way, provide an approximated estimation of the angular position of the rotor. Many applications do not allow use of sensorless techniques because, particularly model-based techniques do not allow an accurate estimation of the angular position at low speeds and do not provide any estimation at practically null speed. Model-based techniques are based on a mathematic model of the physical system.
In certain applications this problem is eliminated by implementing alignment procedures and by using start-up ramps intended to initialize the sensorless algorithm. It is evident that certain applications, such as electrically assisted power steering systems, do not allow pauses between the instant of application of the reference signal and its effective actuation. For these applications that are safety-critical applications, sensorless algorithms may be a reliable alternative.
Often in traditional control systems, a second angular position sensor is commonly installed for controlling that the first sensor is working correctly. Indeed, a sensorless estimation algorithm could compensate errors due to aging or to alterations of the main sensor, making superfluous the second sensor and thus solving the drawback of its encumbrance.
Many examples of use of estimators of the angular position of the rotor of a permanent magnet brushless machine may be found in the literature [4]. In particular, as far as the model-based approaches are concerned, one of the most used techniques is based on the “state observers” for monitoring the state of the system. In this case it is necessary to know at least roughly a mathematical model of the electrical machine.
FIG. 1 illustrates the block diagram of a typical field oriented control of a permanent magnet brushless machine (BLDC). The feedback signals, Isd (direct current) and Isq (quadrature current), that the PI controllers compare with the reference currents Isdref and Isqref, are obtained with a double transform of the phase currents of the motor IU, IV and IW. These currents, measured by sensors, are first transformed from the three-phase statoric reference system to a two-phase statoric reference system (Clarke transform),
                                          I            α                    =                      I            U                          ⁢                                  ⁢                              I            β                    =                                                    I                U                                            3                                      +                                          2                ⁢                                  I                  V                                                            3                                                    ⁢                                  ⁢                  0          =                                    I              U                        +                          I              V                        +                          I              W                                                          (        1        )            
To transform the currents Iα, Iβ in a rotoric reference system (that is, a time invariant system of coordinates), a further transform is necessary (Park transform) in which the angular position θ of the rotor is used:Isd=Iα cos(θ)+Iβ sin(θ)Isq=−Iα sin(θ)+Iβ cos(θ)  (2)
The PI controllers (that is, the controllers with a proportional-integral action), generate reference voltages Usdref and Usqref as a function of the difference between the reference currents and the feedback currents. These voltages, after having been transformed with the inverse of the Park transform,Uαref=Usdref cos(θ)−Usqref sin(θ)Uβref=Usdref sin(θ)+Usqref cos(θ)  (3)are supplied to the PWM generator.
The dynamics of the brushless motor may be studied both in the system of coordinates (d,q) as well as in the system (α,β). In the system (d,q), the dynamics of the system is expressed by the following equations:Lsqİsq=−Lsdzp{dot over (θ)}Isd−cM{dot over (θ)}−RsIsq+UsqLsdİsd=Lsqzp{dot over (θ)}Isq−RsIsd+UsdJM{umlaut over (θ)}=−bM{dot over (θ)}+cMIsq−Mload  (4)wherein zp indicates the number of polar pairs, cM the constant of the electrical machine (that is, the ratio between the generated torque and the current Isq circulating when the rotor is blocked), Rs and Ls the resistance and the inductance of the windings, Usd and Usq the reference voltages. As far as the equation of mechanical equilibrium is concerned, JM, bM and Mload indicate the momentum of inertia, a dampening coefficient and the load moved by the electrical machine, respectively.
In most of the followed approaches, the dynamics of the brushless motor is approximated with that of a DC motor, and it is assumed that id is null. Equations (4) may be simplified as follows:Lsqİsq=−cM{dot over (θ)}−RsIsq+UsqJM{umlaut over (θ)}=−bM{dot over (θ)}+cMIsq−Mload  (5)
The values of state variables of the brushless motor, that in equation (5) are the current Isq and the speed {dot over (θ)}, may be estimated with the “state estimators.” State estimators are algorithms for calculating the values of state variables of a system, if a mathematical model thereof defined as a function of the detected inputs and outputs variables is known.
A state observer that is largely used for controlling brushless motors is the Luenberg state observer [4]. This state observer, even if it is relatively simple, applies only for systems the dynamics of which is described by linear equations. It may be applied for tracking the kinematics of the rotor of a brushless electric machine if the approximation of equations (5) is reasonable.
In case it is not possible to estimate the angular position by using the linear equations (5), the parameters of the observer need to be estimated by introducing a Lyapunov function to be minimized. This technique is rather complicated because it presumes that an exact model of the motor is known, and an appropriate choice of the Lyapunov function is to be minimized. Moreover, it is necessary to estimate at least two of the three phase currents of the motor and the supply voltages.
A state observer that considers also the noise that disturbs the measurement of the values of state variables is the extended Kalman filter. To better understand the field of application of this invention, the functioning of an extended Kalman filter is briefly explained.
From a statistical point of view, the optimal state observer is the Kalman filter. The gain of the filter is calculated considering also the statistical properties of the noise of the process (uncertainty relative to the knowledge of the dynamics of the system) and of the measurement error.
The extended Kalman filter (EKF) is an improvement of the Kalman filter suitable for systems having nonlinear dynamics, and may be used for estimating speed and position of the rotor. Therefore, it is possible to use equations (4) as a mathematical model of the brushless motor.
The advantage with respect to other model-based approaches (such as the Luenberger state observer) includes not needing to use a linear approximation of the nonlinear mathematical model that describes the dynamics of the motor.
The extended Kalman filter applies to discrete-time state equations, such as: x(k+1)= ƒ({overscore (x(k))},{overscore (u(k))}))+ v(k) x(0)= x0 y(k)= g(x(k))+ w(k)  (6)where                 x(k) is the state of the system,         u(k) is the input of the system,         y(k) is the output of the system,         v(k) is the process noise, and         w(k) is the measurement noise.These variables are detected at the step k and in which the functions ƒ(.) and g(.) are two generic nonlinear vector functions with vector variables. The process noise v(k) and the measurement noise w(k) are uncorrelated between them, have a null average and are characterized by the respective covariance matrices Q and R: Q=E{ v(k)· v(k)T};  R=E{ w(k)· w(k)T}.        
To apply the EKF to a system of continuous-time nonlinear system of equations, the system of nonlinear equations is linearized and discretized around sampling instants taken at constant intervals, thus the standard Kalman filter is applied to the linearized system of discrete-time equations.
The a priori estimation of the state variables {circumflex over (x)}(k+1|k) of the system at the step k+1 is a function of the a priori estimation {circumflex over (x)}(k|k) and of the measure of the input variables u(k) at step k, that is: {circumflex over (x)}(k+1|k)= ƒ({overscore ({circumflex over (x)}(k|k))},{overscore (u(k))}))  (7)
To calculate the a posteriori estimation {circumflex over (x)}(k|k), the measurement of the output y(k) of the system at the current step is used, that is {circumflex over (x)}(k|k)= {circumflex over (x)}(k|k−1)+ K(k)·( y(k)− g({overscore ({circumflex over (x)}(k|k−1))},{overscore (u(k))}))  (8)where K(k) is the gain of the Kalman filter at the step k that is tied to the values of the covariance matrices of the process and measurement noise.
To make the Kalman filter provide accurate estimations of the outputs of the system, the values of the matrix of gains K(k) are adjusted such that the estimated values of the outputs g({overscore ({circumflex over (x)}(k|k−1))},{overscore (u(k))}) by the Kalman filter are as close as possible to the effectively measured outputs y(k).
By linearizing and discretizing a system of input-state-output equations, the result is that the variation of the state of the system from step k to step k+1, that is
            Δ      ⁢                          ⁢              x        ⁡                  (          k          )                      _    =                              x          ⁡                      (                          k              +              1                        )                          _            -                        x          ⁡                      (            k            )                          _                    T      s      may be described as follows: Δx(k+1)= F1(k)· Δx(k)+ F2(k)· Δu(k)+ v(k) x(0)= x0 Δy(k)= C(k)· Δx(k)+ w(k)  (9)and the gain K(k) of the EKF filter is: K(k)= P(k|k−1)· C(k)T·( C(k)· P(k|k−1)· C(k)T+ R)−1with P(k+1|k)= F1(k)· P(k|k)· F1(k)T+ Q P(k|k)=( I− K(k)· C(k))· P(k|k−1)where P(k+1|k) and P(k|k) are covariance matrices associated with the estimations of the state a priori and a posteriori, respectively. The latter expresses the uncertainties that affect the a priori and a posteriori estimations of the state, respectively. For the system of equations that describe a brushless motor, state input and output variables are chosen for the following quantities: x=[Isq, Isd,ω,θ]T; ū=[Usq,Use]T; y=[Isq,Isd,ω,θ]T;where ω={dot over (θ)}, it is:
                                                                        f                ⁡                                  (                                                            x                      _                                        ,                                          u                      _                                                        )                                            _                        =                                                            T                  S                                (                                                                                                                              -                                                                                                                    R                                s                                                            ·                                                              I                                sd                                                                                                                    L                              s                                                                                                      +                                                                              z                            p                                                    ·                          ω                          ·                                                      I                            sq                                                                                                                                                                                                                            -                                                                                                                    R                                s                                                            ·                                                              I                                sq                                                                                                                    L                              s                                                                                                      -                                                                              z                            p                                                    ·                          ω                          ·                                                      I                            sd                                                                          -                                                                                                            c                              M                                                        ⁢                            ω                                                                                L                            s                                                                                                                                                                                                                                                        -                                                                                          b                                M                                                                                            J                                M                                                                                                              ⁢                          ω                                                +                                                                                                            c                              M                                                                                      J                              M                                                                                ⁢                                                      I                            sq                                                                                                                                                                          ω                                                                      )                            +                              (                                                                                                                              U                          sd                                                                          L                          s                                                                                                                                                                                                  U                          sq                                                                          L                          s                                                                                                                                                                        -                                                                              M                            load                                                                                J                            M                                                                                                                                                                          0                                                                      )                                              ;                ⁢                                  ⁢                                            g              ⁡                              (                                                      x                    _                                    ,                                      u                    _                                                  )                                      _                    =                      (                                                                                I                    sd                                                                                                                    I                    sq                                                                                                ω                                                                              θ                                                      )                                              (        10        )            and for the sake of simplicity, Lsd=Lsq=Ls. As a consequence:
                                                                        F                1                            ⁡                              (                k                )                                                    _              _                                =                    ⁢                                    [                                                ∇                                      x                    _                                                  ⁢                                                      f                    ⁡                                          (                                                                        x                          _                                                ,                                                  u                          _                                                                    )                                                        _                                            ]                                                                        x                  _                                =                                                      x                    ⁡                                          (                      k                      )                                                        _                                            ,                                                u                  _                                =                                                      u                    ⁡                                          (                      k                      )                                                        _                                                                                                  =                    ⁢                                    T              s                        ⁡                          (                                                                                          -                                                                        R                          s                                                                          L                          s                                                                                                                                                                        z                        p                                            ·                                              ω                        ⁡                                                  (                          k                          )                                                                                                                                                                        z                        p                                            ·                                                                        I                          sq                                                ⁡                                                  (                          k                          )                                                                                                                          0                                                                                                                                      -                                                  z                          p                                                                    ·                                              ω                        ⁡                                                  (                          k                          )                                                                                                                                                -                                                                        R                          s                                                                          L                          s                                                                                                                                                                        -                                                                              c                            M                                                                                L                            s                                                                                              -                                                                        z                          p                                                ·                                                  I                          sd                                                                                                                          0                                                                                        0                                                                                                      c                        M                                                                    J                        M                                                                                                                        -                                                                        b                          M                                                                          J                          M                                                                                                                          0                                                                                        0                                                        0                                                        1                                                        0                                                              )                                                              C        ⁡                  (          k          )                            _        _              =                            [                                    ∇                              x                _                                      ⁢                                          g                ⁡                                  (                                                            x                      _                                        ,                                          u                      _                                                        )                                            _                                ]                                                    x              _                        =                                          x                ⁡                                  (                  k                  )                                            _                                ,                                    u              _                        =                                          u                ⁡                                  (                  k                  )                                            _                                          =              (                                            1                                      0                                      0                                      0                                                          0                                      1                                      0                                      0                                                          0                                      0                                      1                                      0                                                          0                                      0                                      0                                      1                                      )            
The EKF may be used when the covariance matrices of the process noise Q and of the measurement noise R are known. If these matrices are known, it is possible to calculate at each step the gain of the EKF and thus to estimate the state of the system. In [4] different model-based approaches are compared for estimating the angular position of the rotor of a permanent magnet brushless machine, a Luenberger state observer, a reduced Luenberger state observer, an EKE and so on. The best performances in terms of accuracy in tracking the kinematics of the rotor are provided by the EKF. In the cited article the computational loads (that is scalar multiplications, integrations, trigonometric functions) of the various approaches are compared among them, and the result is that the EKF is very burdensome from a computational point of view.
As for other model-based approaches, there is no deterministic and objective method for determining the covariance matrices of the measurement and process noise, and they need to be fixed for using the extended Kalman filter. An imprecise estimation of the matrices Q and R may cause an imprecise control of the system to be controlled.
Moreover, an inappropriate choice of the values of the components of the covariance matrix P(0|0) associated to the estimation a posteriori of the initial state may worsen the precision of the control.